import pandas as pd
from datetime import datetime

# 获取当前日期
current_date = datetime.now().strftime('%Y/%m/%d')

# 读取 Excel 文件
file_path = r'D:\test\test.xlsx'
try:
    df = pd.read_excel(file_path)
    # 筛选出部门为 vendor 或者 intern，账号状态为启用，密码过期时间为永不过期，且账号过期时间已过期的数据
    filtered_df = df[
        ((df['部门'] == 'vendor') | (df['部门'] == 'intern')) &
        (df['账号状态'] == '启用') &
        (df['密码过期时间'].astype(str).str.contains('永不过期')) &
        (df['账号过期时间'] > current_date)
    ]
    # 统计数量
    count = len(filtered_df)
    print(f"部门为 'vendor' 或 'intern'，账号状态为 '启用'，密码过期时间为 '永不过期'，且账号过期时间已过期的数量为: {count}")
    # 打印明细
    if not filtered_df.empty:
        print("明细如下：")
        # 将 filtered_df 的所有列数据类型转换为 object 类型
        filtered_df = filtered_df.astype(object)
        # 重置索引
        filtered_df = filtered_df.reset_index(drop=True)
        # 创建总计行的数据列表
        total_data = ['总计', count] + [''] * (len(df.columns) - 2)
        # 将总计行添加到 filtered_df 末尾
        filtered_df.loc[len(filtered_df)] = total_data
        print(filtered_df)
    else:
        print("未找到符合条件的数据。")
except FileNotFoundError:
    print(f"未找到文件: {file_path}")
except KeyError:
    print("数据中不存在 '部门'、'账号状态'、'密码过期时间' 或 '账号过期时间' 列，请检查列名。")